from django.core.handlers.wsgi import WSGIRequest
from django.shortcuts import render, HttpResponse, redirect, HttpResponseRedirect

from django.http import JsonResponse


# 请求
def my_request(request):
    print(request)  # 请求对象
    # <WSGIRequest: GET '/request/'

    # request对象的属性和方式
    print(request.method)  # 请求方式,GET,POST...
    print(request.GET)  # GET参数   QueryDict:类字典对象
    # print(request.GET['name'])  # 如果name不存在，则报错
    print(request.GET.get('name', default='匿名用户'))  # 如果name不存在，不会报错，而是返回None或默认值
    print(request.GET.getlist('name'))  # 如果name有多个值，则都会获取, 以列表的形式返回
    print(request.POST)  # POST参数
    print(request.POST.get('name'))

    # print(request.path)  # 路径  /request/
    # print(request.get_full_path())  # /request/?age=44&name=zhangsan&name=lisi

    print(request.COOKIES)  # cookie 会话技术
    print(request.session)  # session 会话技术

    print(request.FILES)  # 文件，前端上传的文件对象
    print(request.META['REMOTE_ADDR'])  # 客户端的IP地址

    return HttpResponse('ok')


# 响应
def my_response(request):
    # 1. 返回字符串：企业项目中使用很少
    # return HttpResponse('ok')

    # 2. 返回模板：前后端不分离的情况使用
    # return render(request, 'index.html')

    # 3. 重定向 : 跳转页码
    # return redirect('/request/')
    # return HttpResponseRedirect('/request/')

    # 4. 返回JSON：前后端分离的情况使用
    return JsonResponse({'data': "hello"})

    # response = HttpResponse('ok')
    # response.content = 'hello'
    # response.status_code = 400
    # return response
